觀前提醒:
Given an integer, write a function to determine if it is a power of three.
Example 1:
Input: 27
Output: true
Example 2:
Input: 0
Output: false
Example 3:
Input: 9
Output: true
Example 4:
Input: 45
Output: false
Follow up:
Could you do it without using any loop / recursion?
若不採用基本的 loop / recursion 模式來解題的話,我思考許久,決定採用對數的換底公式來處理這題
請參考以下運算方式:(此為使用LaTeX編寫而成,再截圖的)
經過以上的運算後,只需要計算 i 是否為整數即可
。也就是 Math.log(n) / Math.log(3) 後,整包丟進Number.isInteger(),去判斷是不是整數就OK了~
/**
* @param {number} n
* @return {boolean}
*/
var isPowerOfThree = function (n) {
return Number.isInteger(Math.log10(n) / Math.log10(3));
};
這題如果用迴圈解法真的不難,大家也可以試試看歐~
謝謝大家的收看,LeetCode 小學堂我們下次見~